package server.interfaces;

/**
 * <h1>Interface StatHolder</h1>
 * 
 * Interface to be implemented by the statistics. Provides the necessary
 * methods to allow different visualizers to take the stats and display them.
 * Follows the Observer pattern. 
 * 
 * @author Tomas
 * @date March 8 2009
 */
public interface StatHolder {

	/**
	 * Registers an observer to be notified when something changes in the stats.
	 * 
	 * @param observer
	 * 		Observer to be notified. 
	 */
	public void subscribe(StatObserver observer);
	
	/**
	 * Unregisters the observer.
	 * 
	 * @param observer
	 * 		Observer to be removed.
	 */
	public void unsubscribe(StatObserver observer);
	
}
